/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.view;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dd2.bl.PerfilBlLocal;
import mx.its.dd2.bl.UsuarioBlLocal;
import mx.its.ds2.dao.PerfilDaoLocal;
import mx.its.ds2.modelo.Perfil;
import mx.its.ds2.modelo.Usuario;

/**
 *
 * @author Piter
 */
@ManagedBean
@SessionScoped
public class UsuarioBean {

    @EJB
    private PerfilDaoLocal perfilDao;
    @EJB
    private PerfilBlLocal perfilBl;
    @EJB
    private UsuarioBlLocal usurioBl;
    private List<Usuario> lista;
    private List<Perfil> listaPerfil;
    private Usuario user;
    private String accion;
    private int perfilSeleccionado;

    /**
     * Creates a new instance of UsuarioBean
     */
    public UsuarioBean() {
        user = new Usuario();
    }
    
    public int getPerfilSeleccionado() {
        return perfilSeleccionado;
    }
    
    public void setPerfilSeleccionado(int perfilSeleccionado) {
        this.perfilSeleccionado = perfilSeleccionado;
    }
    
    public List<Perfil> getListaPerfil() {
        listaPerfil = perfilBl.getAll();
        return listaPerfil;
    }
    
    public void setListaPerfil(List<Perfil> listaPerfil) {
        this.listaPerfil = listaPerfil;
    }
    
    public List<Usuario> getLista() {
        lista = usurioBl.getAll();
        return lista;
    }
    
    public Usuario getUser() {
        return user;
    }
    
    public void setUser(Usuario user) {
        this.user = user;
    }

    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            usurioBl.Register(user);
        } else if (accion.equalsIgnoreCase("Editar")) {
            usurioBl.modify(user);
        } else if (accion.equalsIgnoreCase("Eliminar")) {
            usurioBl.delete(user);
        }
        
        accion = "";
        return "Usuario";
    }

    public void agregarPerfil(ActionEvent evet){
        user.setProfileid(perfilDao.find(perfilSeleccionado));
    }
    public void prepararNuevo(ActionEvent evt) {
        user = new Usuario();
        accion = "nuevo";
        
    }

    public void prepararEditar(ActionEvent evt) {
//        System.out.println(evt.getComponent().getClientId());
//        String arr[]= evt.getComponent().getClientId().split(":");
//        String id=arr[2];
//        int index=Integer.parseInt(id);
//        
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        user = lista.get(index);
        accion = "editar";
    }

    public void eliminar(ActionEvent evt) {
        accion = "eliminar";
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        user = lista.get(index);
        
    }

    public String marrirris() {
        String h = "quiero ir a chapala";
        if (accion.equalsIgnoreCase("Nuevo")) {
            h = "Usuario";
        } else if (accion.equalsIgnoreCase("Editar")) {
            h = "UsuarioCrearEditar";
        } else if (accion.equalsIgnoreCase("Eliminar")) {
            h = "Usuario";
        }
        
        accion = "";
        return h;
    }
    // public void agregarCategoria(ActionEvent evt){
    //  listaPerfil.add(perfilbl.findById(categorySeleccionado));
    //}
}
